package com.ttg.web.dao;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ttg.common.entities.BasePage;
import com.ttg.common.enums.TagTypeEnum;
import com.ttg.model.dto.*;
import com.ttg.model.pojo.TagInfo;
import com.ttg.model.vo.*;

import java.util.List;
import java.util.Set;

/**
 * @author ZQ
 * @version 1.0
 * @Description
 * @date 2021/1/26 13:25
 */
public interface TagInfoDao extends IService<TagInfo> {
    BasePage<TagVo> tagPage(TagPageDTO reqDto);

    BasePage<TagVipVo> tagVipPage(TagVipPageDTO reqDto,Set<String> agents,Boolean countFlag);

    BasePage<TagVo> tagPageByVip(TagVipPageDTO reqDto);

    BasePage<TagMctVo> tagPageByMct(TagMctPageDTO reqDto);


    BasePage<MctTagPageVo> mctTagPage(MctTagPageDto reqDto);

    List<TagInfo> getAllByTypeAndStatus(TagTypeEnum type);

    BasePage<GetVipTagListVo>  getVipTagList(BasePage<GetVipTagListVo> basePage, GetVipTagListDto dto);


    BasePage<TagInfo> getAllByTypeAndStatusPage(BasePage basePage,TagTypeEnum type);

    List<TagInfo> queryBindGradeTags(Integer gradeId);

    BasePage<MemberConfigTagsForBindVo> queryTagsForBind(BasePage<MemberConfigTagsForBindVo> pageSetting, Integer gradeId, Integer tagType);

    void cancelBindGradeByGradeId(Integer id);

    void bindGradeId(Integer id, List<Long> tagIds,Integer type);
    Set<String> getAgents(TagVipPageDTO reqDto);

    List<VipTag> getTagListByClass(Integer vipId, Integer tagClassId);

    List<TagInfo> selectByIds(List<Integer> containsTagIds);
}
